//package com.asset.utils;
//
//import com.asset.model.entity.Asset;
//import com.asset.model.entity.DepreciationDetail;
//import com.asset.model.entity.DepreciationRecord;
//
//import java.math.BigDecimal;
//import java.math.RoundingMode;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
///**
// * 折旧计算工具（直线折旧法）
// */
//public class DepreciationUtil {
//
//    private static final BigDecimal ONE = new BigDecimal("1");
//    private static final BigDecimal MONTH = new BigDecimal("12");
//
//    //返回折旧记录，实体类中包含了折旧明细的list
//    public  static List<DepreciationRecord> calculationMethod(ArrayList<DepreciationDetail> depreciationDetails){
//        //循环资产列表
//        for(DepreciationDetail depreciationDetail : depreciationDetails){
//            //获取这个资产的残值率
//            BigDecimal residualRate = BigDecimal.valueOf(depreciationDetail.getAsset().getAssetCategory().getResidual_rate());
//            //获取使用年限
//            BigDecimal usefulLife = BigDecimal.valueOf(depreciationDetail.getAsset().getAssetCategory().getUseful_life());
//            //计算月折旧率 (1-残值率) / (使用年限 * 12)
//            BigDecimal monthDep = ONE.subtract(residualRate).divide(MONTH.multiply(usefulLife), 2, RoundingMode.HALF_UP);
//
//
//
//
//
//
//
//
//
//
//
//
//            //先对列表的属性赋值
//
//
//
//        }
//
//
//        return null;
//    }
//
//
//
//    //更新单个资产的月折旧额
//    public static Asset updateMonthlyDepreciation(Asset asset) {
//        if (asset != null && asset.getAssetCategory() != null &&
//                asset.getAssetCategory().getResidual_rate() != null &&
//                asset.getAssetCategory().getUseful_life() >= 0) {
//            //获取原值
//            BigDecimal value = new BigDecimal(asset.getOriginalValue());
//            //获取这个资产的残值率
////            BigDecimal residualRate = BigDecimal.valueOf(asset.getAssetCategory().getResidual_rate());
////            //获取使用年限
////            BigDecimal usefulLife = BigDecimal.valueOf(asset.getAssetCategory().getUseful_life());
////            //计算月折旧率 (1-残值率) / (使用年限 * 12)
////            BigDecimal monthDep = ONE.subtract(residualRate).divide(MONTH.multiply(usefulLife), 2, RoundingMode.HALF_UP);
//
//            //计算月折旧额(月折旧率 * 原值 )
//            BigDecimal monthlyDepreciation = monthDep.multiply(value);
//
//            //更新资产的月折旧额
//            asset.setMonthlyDepreciation(monthlyDepreciation.doubleValue());
//            return asset;
//        } else {
//            return null;
//        }
//    }
//}
